A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
The present invention is related to computer software and more specifically to computer software for computer network equipment.
Computer networks are made up of network devices, such as switches, routers, bridges and the like. Network devices are managed by one or more network manager devices. Management of a network device includes monitoring the activity of the network device and controlling certain aspects of its operation.
To communicate information used to manage a network device, the network device and network manager communicate using a protocol. Many communication devices use the xe2x80x9cSimple Network Management Protocolxe2x80x9d or xe2x80x9cSNMPxe2x80x9d to communicate this information. SNMP is currently described in Sean Harnedy, Total SNMP, 2d. ed. (Prentice Hall. PTR 1998). Three versions of SNMP exist, versions 1, 2 and 3. SNMP may also be used to communicate network management information for purposes other than network management. Network management information is any information that can be communicated using SNMP or any similar information.
Information stored by a device using the SNMP protocol is made up of data elements. A data element may be a single piece of data, known as an object, or a table of objects. A table is an array of data, with each object in the table corresponding to a row and column name. Each object or table has a distinct, individual name. These objects make up a Management Information Base (MIB).
To obtain large amounts of data from a network device using the SNMP protocol, a list of MIB object names, referred to as a MIB object, may be provided to the network device to indicate the data desired. The content of the MIB object indicates the data desired. A command is sent to the network device indicating that the network device should return the data indicated by the list of MIB object names. The conventional SNMP xe2x80x9cGetbulkxe2x80x9d command can be used for such a purpose.
The conventional Getbulk command has several drawbacks, however. First, when the Getbulk command returns a table data element, if data for a row and column is not stored, the SNMP simply omits providing the unstored data. This requires a programmer to anticipate the possibility that any piece of data in the table can be missing from the result of the Getbulk command. The programmer must detect the missing data and adjust accordingly, complicating the programming of the device receiving such result of the Getbulk command. In order to allow the device receiving the result to detect the missing data from the table, the value of every piece of data from the table is returned with the row name and column name of the piece of data. Because the names are sent with the data, the time required to transmit and receive the result increases beyond that required to transmit the data alone, tying up both the network used to transmit the information, the network device providing the data and the network manager device receiving the data.
Additionally, SNMP requires table rows and columns to be returned in numerical order, but the data may not be stored by the network device in that order. To achieve this requirement, the network device may have to search the entire table to find the next row in numerical order. This process takes additional time and can slow down the network device that provides the data. If there are many rows in tables to be provided, this performance degradation on the network device that must search the table data can be significant.
Because SNMP data may contain billing information, it is desirable to retrieve SNMP data often in order to ensure the data is not lost if the network device crashes. The amount of data retrieved can be quite large, causing the performance problems described above. This can result in the owner of the network causing the data to be retrieved less often than is otherwise optimal.
What is needed is a method and apparatus that can provide network management data elements in a more efficient manner than that provided by SNMP while reducing the programming complexity to receive omitted table data elements.
A method and apparatus provides network management data in a manner similar to that of the conventional SNMP Getbulk command, with the exceptions noted below. Tables are provided by providing a table name, then a row of column names in the order columns are provided. For each row in the table, a row name is provided with all the data for that row, with omitted data in each row filled with a null character or other special identifier. The rows and data within each row may optionally be provided in the order stored, not necessarily numerically. The method and apparatus can provide only specified columns of a table instead of providing all the columns of the table. Because the column and row names of a table are provided only once and the rows and data within each row may not be rearranged from the order in which it is stored, the method and apparatus is more efficient than conventional SNMP. Because omitted data is filled, programming complexity is reduced.